﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MySql.Data.MySqlClient;
using SisCRA.Database;

namespace SisCRA.Config
{
    public static class DatabaseConfig
    {
        #region -Public Static Methods-

        /// <summary>
        /// Método que testa a conexão com o banco de dados.
        /// </summary>
        /// <returns>True se a conexão foi realizada com sucesso, caso contrário False</returns>
        public static bool TestConnection()
        {
            MySqlConnection conn = null;

            try
            {
                Connection.Instance.DestroyConnection();

                using (conn = Connection.Instance.Conn)
                {
                    conn.Open();
                    return true;
                }
            }
            catch
            {
                return false;
            }
        }

        /// <summary>
        /// Método que atualiza o arquivo de configuração de acordo com a nova configuração de banco de dados.
        /// </summary>
        /// <param name="server">Endereço do servidor de banco de dados</param>
        /// <param name="port">Porta do servidor de banco de dados</param>
        /// <param name="user">Usuário do servidor de banco de dados</param>
        /// <param name="password">Senha do servidor de banco de dados</param>
        public static void MakeDatabaseConfig(string server, string port, string user, string password)
        {
            try
            {
                AppConfig.WriteConfiguration(AppConfig.Server, server);
                AppConfig.WriteConfiguration(AppConfig.Port, port);
                AppConfig.WriteConfiguration(AppConfig.User, user);
                AppConfig.WriteConfiguration(AppConfig.Password, password);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        #endregion
    }
}
